/*
* @Author: Josh
* @Date:   2019-01-23 10:40:41
* @Last Modified by:   Administrator
* @Last Modified time: 2019-09-02 12:56:06
*/

'use strict';
var Hogan = require('hogan.js'),
    conf = {
    serverHost : ''
};

//工具类
var _mall = {
    //网络请求
    request : function(param){
        var _this = this;
        $.ajax({
            type        : param.method || 'get',
            url         : param.url    || '',
            dataType    : param.type   || 'json',
            data        : param.data   || '',
            success     : function(res){
                switch(res.status){
                    //请求成功
                    case 0:
                        typeof param.success === 'function' && param.success(res.data, res.msg);
                        break;
                    //未登陆，强制登陆
                    case 10:
                        _this.doLogin();
                        break;
                    //请求数据错误
                    case 1:
                        typeof param.error === 'function' && param.error(res.msg);
                        break;
                }
            },
            error       : function(err){
                typeof param.error === 'function' && param.error(err.statusText);

            }
        });
    },

    //获取服务器地址
    getServerUrl : function(path){
        return conf.serverHost + path;
    },

    //获取url参数
    getUrlParam : function(name){
        //用正则的方式取得路径中参数的值
        var reg     = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'),
            result  = window.location.search.substr(1).match(reg);
        return result ? decodeURIComponent(result[2]) : null;
    },

    //渲染html模板
    renderHtml : function(htmlTemplate, data){
            //编译
        var template = Hogan.compile(htmlTemplate),
            //渲染
            result   = template.render(data);
        return result;
    },

    // 成功提示
    successTips : function(msg){
        alert(msg || '操作成功！');
    },
    // 错误提示
    errorTips : function(msg){
        alert(msg || '操作失败！');
    },

    //字段的验证，支撑非空、手机、邮箱的判断
    validate : function(value, type){
        /*1、去掉value前后的空格
          2、将value转换为字符串
        */
        var value = $.trim(value);
        
        switch(type){
            //非空验证
            case 'require':
                return !!value;//将value转换为布尔型
                break;
            
            //手机号码验证
            case 'phone':
                return /^1\d{10}$/.test(value);
                break;
            //邮箱验证
            case 'email':
                return /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(value);
                break;
        }
    },

    //统一登陆处理
    doLogin : function(){
        //为window.location.href赋值 自动调用其assign方法（立即打开新的url并在浏览器的历史记录中生成一条记录）
        window.location.href = './user-login.html?redirect=' + encodeURIComponent(window.location.href);

    },
    goHome  : function(){
        //为window.location.href赋值 自动调用其assign方法（立即打开新的url并在浏览器的历史记录中生成一条记录）
        window.location.href = './index.html';
    }

};

module.exports = _mall;
